home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs36.d81 / datapump.sfx / datapump.doc (.txt) < prev    next >
GEOS ConVerT  |  1992-07-17  |  10KB  |  52 lines

  1. DATAPUMP.doc
  2. SEQ formatted GEOS file V1.0
  3. BlueChip M120
  4. BLASTER'S CONVERTER V2.5
  5. Write Image V2.1
  6. Red Storm
  7. geoWrite    V1.1
  8. DATAPUMP implementation
  9. docs/ (C) Perry Grodzinski
  10. H          
  11.       
  12. "DATAPUMP" THE 6551 ACIA CARD 
  13.               
  14. @(C)opyright Perry M. Grodzinski, 1991
  15. Note:
  16.  You are free to give away these documents but not to sell! 
  17. @SWIFTLINK
  18.  is a Trademark of CMD (Creative Micro Designs). 
  19. Although this project is very simple to construct, some electronic experience would be beneficial. The author takes no responsibility for this modification as this project is to be done at the risk of the reader.
  20.  With the price of high speed modems quickly falling, home computer users can now have 9600 bits per second modems for the price that 300 BPS once cost. Unfortunately, anything above 2400 BPS for the c64 is a problem, it just can't keep up. Most of the serial to parallel and other bit handling is done from the CIA 6526 chip and intensive code. Other Commodore's of the past like the SuperPET, B series, and +4, all used another means to achieve the serial conversion. By using an IC known as a UART (Universal Asynchronous Receiver Transmitter), These machines were able to handle a much higher bit rate than what can be achieved with a C64. The UART used is known as the R6551 ACIA (Asynchronous Communications Interface Adapter). It can also be noted that this is also the UART used in the CMD SWIFTLINK
  21. . The design presented here allows the C64 to communicate at speeds of up to 38,400 BPS. Although I have not tested at the higher end speeds, I do use this design to communicate with my modem at 19,200 BPS without any problems. Purchasing a SWIFTLINK from a Canadian supplier was a tad costly for me and was not going to challenge me as an electronic project so I decided to try to build a card around the 6551. Thus the 
  22. @DATAPUMP
  23. ! After receiving the 6551 and specification sheets, I was very pleasantly surprised to see that this was going to be a breeze. It was as though the 6551 was built for interfacing to the C64. No fancy interfacing was required at all. All that had to be done was Hook It UP! Looking further into the spec sheets I found that the maximum speed with the recommended crystal was 19,200 bits per second. Knowing that terminal programs like Fritzterm, and Novaterm had maximum speed settings of 38,400 BPS for use with Swiftlink, it quickly hit me that CMD was doubling the speed. I quickly  looked through the parts catalog and found there to be a crystal of a standard speed exactly double of the frequency on the spec sheet, so I ordered it. After getting my card built I found that indeed a double speed crystal was what was used in the design of the Swiftlink. By the way, for the record let me mention here and now, that my design, even though it may appear to be in some ways, is not a Swiftlink clone. That is to say I had never even seen what the case of one looked like, let alone the insides.    Actually at the date of this writing, I still haven't seen a Swiftlink! Now with the legality questions out of the way lets go  build a DATAPUMP!
  24.      The heart and soul of the DATAPUMP is of course the 6551. I used one manufactured by Rockwell. Again interfacing the 6551 to the C64 is very simple. The 6551 pinout is as follows : 
  25. Pin#  Label   Function              Pin#   Label   Function
  26. ----  -----  --------             ----  -----  --------  
  27.  1)    GND    Ground               28)   R/W   Read/Write  
  28.  2)    CS0    Chip Select High       27)   Ph2    Phase 2 clock  
  29.  3)   /CS1    Chip Select Low       26)  /IRQ    Interrupt Request 
  30.  4)   /RES    Reset                25)   DB7    Data Bus 7  
  31.  5)    RxC    Receive Clock        24)   DB6    Data Bus 6  
  32.  6)    XTL1   Crystal leg            23)   DB5    Data Bus 5  
  33.  7)    XTL2   Crystal leg            22)   DB4    Data Bus 4  
  34.  8)   /RTS    Request To Send      21)   DB3    Data Bus 3  
  35.  9)   /CTS    Clear To Send        20)   DB2    Data Bus 2 
  36.  10)    TxD    Transmit Data        19)   DB1    Data Bus 1 
  37.  11)   /DTR    Data Terminal Ready  18)   DB0    Data Bus 0 
  38.  12)    RxD    Receive Data        17)  /DSR   Data Set Ready 
  39.  13)    RS0    Register Select Bit 0  16)  /DCD   Data Carrier Detect 
  40.  14)    RS1    Register Select Bit 1   15)   Vcc   +5 Volt  
  41. I'll further explain some of these pins and their functions. To select the chip (to read/write to it) CS0 must be high and CS1 must be low. So we'll use I/O1 to select the chip as it is active low. We tie CS0 permanently high and toggle the chip by changing I/O1. I/O1 goes low whenever a read or write to $DExx takes place. Note that you can use I/O2 here and map the 6551 to $DFxx if you wish, but be aware that this will put the 6551 in conflict with a REU. 
  42. /RES could be tied to the/reset signal coming from the C64, I chose not to do this for my purpose as I can do a hard reset from my C64, do whatever such as load a different communications package and be back without resetting my 6551 which would cause my modem to disconnect. I leave this up to you but make sure this line if pulled up via R1 even if you connect your 64 /res here. A0 and A1 connected to RS0 and RS1 allow the registers of the 6551 to be selected from $DE00 through to $DE03. R2 through R4 must be inplace to cause the conditions to be true on CTS, DCD, and DSR, when no modem is connected to the the 6551. If these states are not true the 6551 can generate interrupts that if not properly handled with software can cause the C64 to hang rudely. Pins 10,11,12,15,16,17 and gnd, all make up the RS232C serial output. To follow the RS232C voltage standards I used the common 1488 RS232 driver and the 1489 receiver. The only hassle is with the fact that the 1488 requires two 9 - 15 volt power supplies. One supply ties its negative to ground and positive to pin 14 of the 1488. The other supply has its positive side tied to ground and its negative side connected to pin 1 of the 1488. To acquire the two 12 volt supplies, I used a +5 volt to +/- 12 volt dc to dc converter made by a firm called Astec. I removed this converter from an old junk board that was a serial card for a Radio Shack TRS-80 Model 1 micro. If you have problems finding such a part, there are many alternatives to achieving these voltages. You could steal the 9v ac supply off of the user port and through a network of diodes and capacitors create two 9v dc supplies. Another would be to use an external center tap 24 volt transformer and create two  12 volt dc supplies. To get by you could also simply use two 9 volt batteries. The reason I chose the converter was that I could then build the entire DATAPUMP, power and all on one card and use the 5v coming from the C64. C1 through to C7 and L1 and L2 are simply used for filtering on the converter.
  43. Construction is very easy and no previous training in rocket science is necessary. however basic knowledge in electronics and soldering would be an asset. The entire project is built on a single card plugged into the expansion port of the C64. I used a Radio Shack part 276-192. It is a 72-position plug-in board with .100" contact centers. US friends should check the RS numbers as I am unsure if Radio Shack uses the same part numbers in the US as they do in Canada. The card edge must be carefully cut down of course to match the 44 pin expansion port female on the back of the C64. Once this is done you now have a large 4.5" X 5.7" card to add more than the DATAPUMP if you wish. On my card, I have the DATAPUMP project, a couple of eproms, and another female 44 pin for my REU, and a few other goodies. I used sockets on all the IC's except for the DC-DC converter. On my external cards I always use single core copper telephone wire for circuit trace connections, and never have problems with noise.
  44.      I hope you enjoy this project as much as i did. I know you'll love the the ability to really cruise at 19,200 BPS. To date I have found few terminal programs that could really make the card hum. Terminal 1 is one terminal package that works very well. Fritzterm also flys  along and keeps the C64 right up to snuff with the 6551. Novaterm 9.3 also supports the 6551 but becomes undependable at speeds higher than 2400. I mentioned this to the author so maybe we'll see this in his next release. Although this interface was designed for the C64 It could easily be adapted to the 128 as well. Of course, from what I understand, on the 128, a 6551 is not required unless the user wishes to transceive at speeds higher than 9600 BPS.
  45. If you  have any questions comments or suggestions, please contact me at :
  46. @Perry Grodzinski
  47. 30 Fyfe Street
  48. Regina, Sask. Canada
  49. S4X-1J8
  50. I also hang out on the CBM Echo and can be reached there. 
  51. @GOD BLESS !
  52.